package kibahed.server.schnapsen;

import java.net.Socket;
import java.util.LinkedList;
import java.util.List;

import kibahed.interfaces.ClientRepresentation;
import kibahed.interfaces.cards.Card;

public class Schnapser extends ClientRepresentation {

	private List<Card> handkarten;
	private List<Card> stichkarten;
	private int angesagtePaarWerte;
	
	private int punkte;
	
	public Schnapser() {
		super();
		angesagtePaarWerte = 0;
		punkte = 7;
	}
	
	public Schnapser(Socket socket) {
		super(socket);
		handkarten = new LinkedList<Card>();
		stichkarten = new LinkedList<Card>();
	}

	public void restart() {
		handkarten = new LinkedList<Card>();
		stichkarten = new LinkedList<Card>();
		resetAngesagtePaarWerte();
	}
	
	public void sagePaarAn(int value) {
		angesagtePaarWerte+=value;
	}
	
	private void resetAngesagtePaarWerte() {
		angesagtePaarWerte = 0;
	}
	
	public void addHandkarte(Card card) {
		handkarten.add(card);
	}

	public List<Card> getHandkarten() {
		return handkarten;
	}

	public List<Card> getStichkarten() {
		return stichkarten;
	}

	public void addStich(Card card) {
		stichkarten.add(card);
	}
	
	public void neueRunde() {
		handkarten = new LinkedList<Card>();
		stichkarten = new LinkedList<Card>();
		resetAngesagtePaarWerte();
	}
	
	public int getScore() {
		int score = angesagtePaarWerte;
		for(Card c : stichkarten) {
			score+=c.getValue();
		}
		return score;
	}
	
	public void neuesBummerl() {
		punkte = 7;
		restart();
	}
	
	public int getPunkte() {
		return punkte;
	}
	
	public void decreasePunkte(int d) {
		punkte-=d;
	}
}
